home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Belgian Amiga Club - ADF Collection
/
BS1 part 26.zip
/
BS1 part 26
/
Doxdisk 23 MWB.adf
/
9
< prev
next >
Wrap
Text File
|
1991-11-11
|
21KB
|
462 lines
***********************************************************************
* *
* DiskRepair V1.13 - written 1991 by P.Röhrich *
* *
***********************************************************************
* * *
* Autor: Datum: * Schnellstes Disketten/Festplatten Repair-Tool *
* ------ --------- * für den Amiga *
* Pur 16.09.91 * *
* * *
***********************************************************************
-----------------------------------------------------------------------
- Achtung Beta-Tester -
DAS DATEIFORMAT DER BACKUPDATEIEN FÜR "Backup RDSK" HAT SICH IN DER
ENDVERSION VON DiskRepair V1.11 GEÄNDERT. BITTE EVTL. VORHANDENE
BACKUPDATEIEN AKTUALISIEREN.
-----------------------------------------------------------------------
- Wichtig! -
DiskRepair benötigt ca. 60 KByte Arbeitsspeicher und einen Stack von
min. 8192 Bytes. Ist der Stack zu klein gewählt worden, erhalten Sie
einen entsprechenden Hinweis von DiskRepair.
Sollte im Verlauf der Korrekturarbeiten ein Stacküberlauf auftreten, so
müssen Sie die Stackgröße erhöhen, und das Programm noch einmal
starten. Ein solcher Stacküberlauf tritt nur auf, wenn die zu prüfende
Partition/Diskette weit mehr als 3300 Einträge (Verzeichnisse zählen
auch mit) beinhaltet. Aus Geschwindigkeitsgründen wurde auf eine
Stacküberprüfung während das Programmablaufes verzichtet. Daher kommt
es bei einem Stacküberlauf zu einem "Software Failule - Task held".
- Besonderheiten! -
Es stehen zwei Versionen des DiskRepair zur Verfügung. Erstens die
68000 und zweitens die 68020/30 Version. Verfügen Sie über ein ent-
sprechendes Turboboard, sollten Sie auch diese Version verwenden, da
diese etwas schneller ist. Ein 68881/82 Coprozezzor ist dabei nicht
notwendig.
Hinweis! Die Turboversion wird ab Version 1.11 nicht mehr
mitgeliefert. Sollte jemand die Turboversion benötigen,
so bitte ich um Mitteilung.
In dieser Version wird noch nicht auf Verkettungsfehler
geprüft.
DiskRepair arbeitet ab Kickstart 1.3. Ab besten jedoch Kickstart 2.0,
da hier die erweiterten Fehlermeldungen von 2.0 unterstützt werden.
DiskRepair ist nicht zum Wiederherstellen von gelöschen Verzeichnissen
oder Dateien gedacht. DiskRepair ist konzipiert um die am häufigsten
auftretenden Fehler schnell zu beseitigen. Dabei werden nur die
Verzeichnisse oder Dateien repariert, die auch noch vorhanden sind.
Dabei MUSS der Rootblock des ausgewählten Devices vorhanden ein.
Folgende Fehler werden erkannt und beseitigt:
1. Block has checksum error
2. Block has bad header type
3. Block has bad headerkey
4. Block has bad ownkey
5. Key already set
6. Key out of range
7. Key mismatch error
8. File/directory has bad blocktype
Geprüft werden:
Alle Blöcke, die von der Baumstruktur her belegt werden
Prüfsummen aller Blocktypen
Alle zu prüfenden Blöcke werden auf Harderrors untersucht
Alle Arten von Blocktypen
Zeiger auf übergeordnetes Verzeichnis
Zeiger auf Dateiheader
Zeiger auf den eigenen Block, wenn es der Blocktyp erfordert
Bei DOS\0-Devices wahlweise alle Data-Blöcke der entprechenden
Datei
Dateilänge in Blocks
Ob Blöcke mehrfach belegt sind
Ob Zeiger auf Blöcke innerhalb des gültigen Bereiches liegen
Der Erfolg:
Alle geprüften Dateien, soweit diese repariert werden konnten (keine
Harderrors auf den Datenblöcken), sind nach Abschluß der
Korrekturarbeiten wieder uneingeschränkt benutzbar. Nicht belegte
Blöcke (also freie Blöcke) können natürlich noch Fehler aufweisen.
- Bedienung -
Wenn das Programm gestartet wurde, wird als Vorgabe, bei jedem
gefundenen Fehler ein Infofenster ausgegeben, in dem Sie dann
entscheiden können ob der Fehler beseitigt werden soll oder nicht.
Soll DiskRepair alle Fehler selbständig, also ohne Nachfrage,
beseitigen, so müssen Sie diese Funktion im Pulldown-Menü ausschalten.
Einzige Ausnahme ist, wenn ein Block mit einem einem unbekannten
Blocktyp gefunden wurde, hier müssen Sie dann entscheiden ob es sich um
eine Datei oder um ein Verzeichnis handelt.
Ist die zu prüfende Diskette/Festplattenpartition im alten FilingSystem
formatiert, so werden, als Vorgabe, alle gefundenen Dateien komplett
geprüft. Wenn dies nicht gewünscht ist, kann diese Funktion im
Pulldown-Menü ausschaltet werden. In diesem Fall werden dann nur die
Fileheader-Blöcke geprüft.
Sollte DiskRepair im Verlauf der Korrekturarbeiten Harderrors auf dem
ausgewählten Device feststellen, kann nach Ablauf der Arbeiten eine
Fehlerliste Namens "RAM:Errors.LST" erstellt werden. In dieser sind
dann alle Harderrors des Devices enthalten. Sollte das Ausgewählte
Device eine Festplattenpartition sein, so können Sie mit Ihrer
Installationssoftware zur Festplatte nun die defekten Blöcke sperren.
Eine solche Fehlerliste kann z.B. so aussehen:
Device : hddisk.device
Unit : 0 (DH0:)
------------------------------
Error on diskblock 882
Error on diskblock 903
Error on diskblock 622
HINWEIS! Sollte beim Start des Programms die Systemmeldung "Volume
$ has a checksum error on disk block #", so beantworten
Sie diese Meldung IMMER mit "Cancel". Dieser Fehler wird
sofort, nachdem Sie "Cancel" angeklickt haben, beseitigt.
- Das Menü -
Das Pulldown-Menü enthält die folgenden Punkte und Shortcuts:
DeviceInfo D
CheckDOS\0-Files C
Ask befor repair A
Scan errors E
Validate disk V
About I
---------------------
Backup RDSK B
Restore RDSK R
---------------------
Backup LIVE S
Restore LIVE W
Quit Q
DeviceInfo - Hat die gleich Funktion, als würde man das
Grafik-Gadget anklicken.
CkeckDOS\0-Files - Wenn dieser Menüpunkt zu sehen ist, werden
alle Datenblöcke, des jeweiligen Files, auf
einem Device mit StandardFileSystem, geprüft.
Wird dieser Menüpunkt ausgewählt, werden nur
die FileHeaderBlöcke geprüft. Der Menüpunkt
ändert sich dann in "Don't check DOS\0-Files".
Ask befor repair - Ist dieser Menüpunkt zu sehen, wird DiskRepair
bei jedem gefundenen Fehler ein Infofenster
ausgegeben, in dem Sie dann entscheiden können
ob der Fehler beseitigt werden soll oder
nicht. Wird dieser Menüpunkt ausgewählt,
ändert sich der Menüpunkt in "Don't ask befor
repair" und DiskRepair beseitigt alle Fehler
selbständig.
Scan errors - Startet man diese Funktion, wird das
ausgewählte Device komplett auf Fehler
untersucht. Dieser Vorgang kann je nach
Anzahl der Blöcke, mehrere Minuten dauern.
Sollte DiskRepair Fehler auf dem ausgewählten
Device feststellen, kann nach Ablauf des
Scan-Vorgangs eine Fehlerliste Namens
"RAM:Errors.LST" erstellt werden. Diese
enthält dann eine Aufstellung aller Fehler des
Devices. Während das gesamten Scanvorgangs
werden keinerlei Fehlermeldungen ausgegeben
die beantwortet werden müssen. Das Programm
kann also unbeaufsichtigt weiterarbeiten.
Validate disk - Mit Hilfe dieser Funktion wird das ausgewählte
Device validiert. Bitte beachten Sie dabei,
daß in der Statuszeile schon "READY" stehen
kann, aber Validierungsvorgang noch nicht
abgeschlossen ist. Warten Sie daher mit
jeglichen Diskettenoperationen, bis die
Laufwerkslampe erloschen ist.
About - Infofenster über die Herkunft des Programms.
In diesem Fenster wird auch die maximale Anzahl
der der zu prüfenden Einträge angezeigt. Dabei
ist die Anzahl vom freien Speicherplatz
abhängig. Maximal werden jedoch 1.000.000
Bytes von DiskRepair allokiert. Das entspircht
genau 117.647 Einträgen. Nach Programmstart
müssen jedoch mindestens 30.000 ( = 3.529
Einträge) Bytes Speicher frei sein, anderfalls
bricht das Programm mit einem entsprechenden
Hinweis ab. Im Normalfall allokiert DiskRepair
immer soviel, daß man problemlos im
Multitasking weiterarbeiten kann.
Backup RDSK-Blocks - Wenn Sie diese Funktion auswählen, werden die
Blöcke des RigidDiskBlock, der ausgewählten
Festplatte auf Diskette gesichert. Dies
sollten Sie auch UNBEDINGT BEIM ERSTEN EINSATZ
von DiskRepair tun UND IMMER WENN ÄNDERUNGEN
AN DEN PARTITIONEN MIT IHRER INSTALLATIONS-
SOFTWARE VORGENOMMEN WURDEN. Denn wenn die
Informationen im RigidDiskBlock nicht mehr
vorhanden, oder zerstört sind, FÜHRT das ZUM
VERLUST DES GESAMTEN PLATTENINHALTS.
Bitte beachten Sie das es unnötig und auch
unmöglich ist ist, bei einer Festplatte die
mehrere Partitionen besitzt, von jeder
Partition ein RigidDiskBlock-Backup
anzufertigen. Denn nur auf der untersten
Partition befinden sich die
RigidDiskBlock-Blöcke.
Hinweis! Sollte kein, nach den von Commodore-Amiga vorgegebenen
Programmierkonventionen, RigidDiskBlock gefunden werden,
so bietet Ihnen DiskRepair die Möglichkeit, den gesamten
reservierten Plattenbereich zu sichern.
Restore RDSK-Blocks - Mit Hilfe dieser Funktion kann, im Falle eines
Verlusts des RigidDiskBlock, dieser wieder
aufgespielt werden. Vorausgesetzt dieser
wurde vorher mit "Backup RDSK" gesichert. Ein
versehentliches Aufspielen eines falschen
RigidDiskBlock oder einer anderen Datei ist
ausgeschlossen. Um dem vorzubeugen, wurden
mehrere Schutzmechanismen integriert.
1. Eindeutige Namensvergabe bei den Sicher-
ungsdateien. Z.B.: "RDSK-Backup_of_DH2"
2. Die Sicherungsdatei hat einen typischen
Aufbau. Erkennung des Dateitypes über
"FORM", "DREP" und der Blockkennung "RD".
3. Erkennung des richtigen Devices über
"DEV" und der darauffolgenden
Devicekennung.
4. Erkennung der Lage bzw. der Position und
der Länge des RigidDiskBlock.
Backup LIVE - Mit dieser Funktion, wird er Rootblock und
alle Bitmapblöcke des ausgewählten Devices auf
Diskette gesichert. Sie sollten diese
Funktion immer anwenden, wenn umfangreiche
Änderungen auf der Diskette/Partition
vorgenommen wurden. Denn wenn diese
Informationen nicht mehr vorhanden, oder
zerstört sind, FÜHRT das ZUM VERLUST DES
GESAMTEN DISKETTEN/PLATTENINHALTS.
Restore LIVE - Hiermit lassen sich, im Falle eines Verlusts
des Rootblock bzw. der Bitmapblöcke, diese
wieder aufgespielen. Vorausgesetzt sie wurden
vorher mit "Backup LIVE" gesichert. Ein
versehentliches Aufspielen von falschen
Blöcken oder einer anderen Datei ist
ausgeschlossen, denn auch hier wurden mehrere
Schutzmechanismen integriert, um dem
vorzubeugen.
1. Eindeutige Namensvergabe bei den Sicher-
ungsdateien. Z.B.: "LIVE-Backup_of_DH2"
2. Die Sicherungsdatei hat einen typischen
Aufbau. Erkennung des Dateitypes über
"FORM", "DREP" und der Blockkennung "BM".
3. Erkennung des richtigen Devices über
"DEV" und der darauffolgenden
Devicekennung.
4. Erkennung der Lage bzw. der Position der
einzelnen Blöcke.
Quit - Hat die gleich Funktion, als würde man das
Exit-Gadget anklicken.
- Die Gadgets -
In dem linken Gadget wird das gewünschte Zieldevice (Diskette/
Festplattenpartition) ausgewählt. Durch jeden Klick wird jeweils das
nächste Device angezeigt. Dabei werden nur solche Devices angezeigt,
die auch über ein AmigaDOS-FilingSystem und den DosType 'DOS\0' oder
'DOS\1' verfügen. Klickt man das Gadget 'Start' an, wird der
Scanvorgang gestartet. Anschließend wird aus dem Start-Gadget ein
Stop-Gadget. Man kann das Reparieren/Scannen also jederzeit abbrechen.
Wenn Sie ein neues Device mounten oder eine neue Diskette eingelegt
haben, nachdem DiskRepair gestartet wurde, kann die Deviceliste durch
einen Klick auf 'ReScan' neu eingelesen werden.
Das Exit-Gadget hat nur diese Funktion.
Das Gadget mit der Grafik dient als DeviceInfo. Wenn Sie dieses Gadget
anklicken, erhalten Sie eine komplette Übersicht über das ausgewählte
Device. Eine solche Übersicht kann z.B. so aussehen:
Device : scsi.device
Unit : 0 (WB_2.x:)
------------------------------
Surfaces : 1
BlocksPerTrack: 49
Reserved : 2
Interleave : 0
LowCylinder : 2
HighCylinder : 254
Buffers : 200
BuffMemType : 0
Maxtransfer : 16383 KBytes
Mask : 0x7ffffffe
BootPri : 2
DosType : 0x444f5301
FileSystem : FastFileSystem
- Die Statuszeilen -
Während des Programmablaufs werden in den Statuszeilen, der jeweils
aktuelle Dateiname, das dazugehörige Verzeichnis, die Anzahl der
bereits geprüften- und der reparierten Dateien/Verzeichnisse ange-
gezeigt.
In der Zeile 'Status:' können Sie ablesen was gerade von DiskRepair
geprüft wird. Hier kann folgendes stehen:
CHECKING DISKSTRUCTURE
CHECKING FILE AND DIRECTORY HEADERS
CHECKING EXTENSION-BLOCKS
CHECKING FILE ON DOS\0-DEVICE
CHECKING FOR KEY ALREADY SET ERRORS #%
SCANNING DEVICE FOR ERRORS #%
BACKING UP RDSK-BLOCKS
RDSK-BLOCKS NOT BACKUPPED
RESTORING RDSK-BLOCKS
RDSK-BLOCKS NOT RESTORED
BACKING UP LIVE-BLOCKS
LIVE-BLOCKS NOT BACKUPPED
RESTORING LIVE-BLOCKS
LIVE-BLOCKS NOT RESTORED
STOPPED BY USER
READY
--- Kommentar erwünscht -----------------------------------------------
Für Hinweise und Verbesserungsvorschläge bin ich jederzeit dankbar.
Über Modem:
Ghost-Box: 02104/81124 (1200-19200 Baud; 8-N-1, 24 Stunden online)
Sytax: 1. Login 'Gast' oder Username falls schon eingetragen
2. 'Brief BEN' Brief an mich
3. 'RETURN' Text schreiben
4. '.' Beendet die Texteingabe
Per Post:
Peter Röhrich
Wildenbruchstr. 108
W-4000 Düsseldorf 11
West Germany
Vielen Dank.
--- Legende -----------------------------------------------------------
V0.95 Erste einigermaßen funktionsfähige Version
V0.99 Voll funktionsfähige Version; FastFileSystem-Unterstützung
integriert
V0.99a Diverse Verbesserungen vorgenommen; Turboversion erstellt
V1.0 Umgeschrieben auf SASC 5.10a; Optimiert; erweiterte Fehler-
meldungen von Kick 2.0 integriert; Fileprüfung für DOS\0-
Devices integriert
V1.1 Alle Blocktypen werden untersucht; Prüfung auf übergeordnetes
Verzeichnis/Dateiheader; Prüfung der DOS\0-Data-Blöcke inte-
griert; Pulldown-Menüs integriert; Gadget/Menü-Disable
integriert; bis auf Verkettungsfehler, werden jetzt alle
Fehler erkannt und können beseitigt werden; Errorscan
integriert; Stack- und Stacküberlaufprüfung integriert;
DiskRepair arbeitet nun nur noch ab Kickstart 1.3
V1.11 RDSK-Block-Backup und -Restore integriert; div. Funktionen
optimiert; bei "CHECKING FOR KEY ALREADY SET ERRORS" und
"Scan errors" wurde der Blockzäher durch eine prozentuale
Ausgabe ersetzt; LIVE-Block-Backup und -Restore integriert;
die unter Kickstart 1.3 nicht richtig dimensionierten
Requester, werden nun richtig ausgegeben; jetzt wird immer
der Zeichensatz "topaz 8" angefordert - es gibt also keine
fehlerhaften Textausgaben mehr, wenn ein anderer Zeichensatz
über Preferences/Font eingestellt wurde
V1.12 Sollte bei "Scan errors" keine Diskette im entsprechenden
Laufwerk liegen, so wird der Scanvorgang nun abgebrochen;
Funktion "Validate disk" integriert; Fehler bei "Key already
set" und "Key out of range" beseitigt; die max. Anzahl der
der zu prüfenden Einträge, ist jetzt Speicherabhängig und
auf maximal 117.647 Einträge, je Partition/Diskette, begrenzt.
V1.13 Fehler bei OpenDevice beseitigt - wurde ein Device gefunden,
dessen Devicename größer 17 Zeichen war, so wurden alle Zeichen
ab dem 18. Zeichen abgeschnitten. Wenn auf das Devicegadget
geklickt wurde, so ist nicht immer der richtige Devicename an-
gezeigt worden. Dieser Bugreport ist von "Carnivore/BeerMacht"
Danke!